package yl.hs.bmipfull.pojo.salemanage;

import lombok.Data;
import yl.hs.bmipfull.annotations.DBField;
import yl.hs.bmipfull.annotations.DBTable;
import yl.hs.bmipfull.pojo.BaseEntity;
import yl.hs.bmipfull.utils.HanYuHelper;

/**
 * @author 华砂信息-谢景广
 *
 */
@Data
@DBTable(disName = "客户信息", mapCode = "customer_info")
public class CustomerInfoEntity extends BaseEntity {


    private Long id;
    private String billingNumber;
    /**
     * 设置主键
     * @param id
     */
    public void setId(Long id){
        this.id = id;
    }
    /**
     * 获取主键
     * @return
     */
    public Long getId(){
        return this.id;
    }

    @DBField(disName = "客户编号",mapCode = "sn", isSerialNumber = true,isRequire = true,snPrefix = "KHXX")
    private String sn;
    /**
     * 设置编号
     * @param sn
     */
    public void setSn(String sn){
        this.sn = sn;
    }
    /**
     * 获取编号
     * @return
     */
    public String getSn(){
        return this.sn;
    }

    @DBField(disName = "客户名称",mapCode = "custName")
    private String custName;
    /**
     * 施工单位
     */
    @DBField(disName = "施工单位",mapCode = "constructionUnit")
    private String constructionUnit;
    /**
     * 建设单位
     */
    @DBField(disName = "建设单位",mapCode = "buildUnit")
    private String buildUnit;
    /**
     *  监理单位
     */
    @DBField(disName = "监理单位",mapCode = "supervisorUnit")
    private String supervisorUnit;
    /**
     * 设置客户名称
     * @param custName
     */
    public void setCustName(String custName){
        this.custName = custName;
    }
    /**
     * 获取客户名称
     * @return
     */
    public String getCustName(){
        return this.custName;
    }

    private String custNamePY;
    /**
     * 设置客户名称拼音
     * @param custNamePY
     */
    public void setCustNamePY(String custNamePY){
        this.custNamePY = custNamePY;
    }
    /**
     * 获取客户名称拼音
     * @return
     */
    public String getCustNamePY(){
        return this.custNamePY;
    }

    @DBField(disName = "所在区域",mapCode = "area")
    private String area;
    /**
     * 设置区域
     * @param area
     */
    public void setArea(String area){
        this.area = area;
    }
    /**
     * 获取区域
     * @return
     */
    public String getArea(){
        return this.area;
    }


    private String areaPY;
    /**
     * 设置区域拼音
     * @param areaPY
     */
    public void setAreaPY(String areaPY){
        this.areaPY = areaPY;
    }
    /**
     * 获取区域拼音
     * @return
     */
    public String getAreaPY(){
        return this.areaPY;
    }


    private String areaCode;
    /**
     * 设置区域代码
     * @param areaCode
     */
    public void setAreaCode(String areaCode){
        this.areaCode = areaCode;
    }
    /**
     * 获取区域代码
     * @return
     */
    public String getAreaCode(){
        return this.areaCode;
    }

    @DBField(disName = "定位信息",mapCode = "pointInfo")
    private String pointInfo;
    /**
     * 设置定位
     * @param pointInfo
     */
    public void setPointInfo(String pointInfo){
        this.pointInfo = pointInfo;
    }
    /**
     * 获取定位
     * @return
     */
    public String getPointInfo(){
        return this.pointInfo;
    }

    private String organizationSN;
    private String organizationCode;

    @DBField(disName = "客户地址",mapCode = "address")
    private String address;
    /**
     * 设置详细地址
     * @param address
     */
    public void setAddress(String address){
        this.address = address;
    }
    /**
     * 获取详细地址
     * @return
     */
    public String getAddress(){
        return this.address;
    }


    private String addressPY;
    /**
     * 设置详细地址拼音
     * @param addressPY
     */
    public void setAddressPY(String addressPY){
        this.addressPY = addressPY;
    }
    /**
     * 获取详细地址拼音
     * @return
     */
    public String getAddressPY(){
        return this.addressPY;
    }

    @DBField(disName = "企业性质",mapCode = "enterpriseNature")
    private Short enterpriseNature;
    /**
     * 设置企业性质
     * @param enterpriseNature
     */
    public void setEnterpriseNature(Short enterpriseNature){
        this.enterpriseNature = enterpriseNature;
    }
    /**
     * 获取企业性质
     * @return
     */
    public Short getEnterpriseNature(){
        return this.enterpriseNature;
    }

    @DBField(disName = "企业类型",mapCode = "enterpriseType")
    private Short enterpriseType;
    /**
     * 设置企业类型
     * @param enterpriseType
     */
    public void setEnterpriseType(Short enterpriseType){
        this.enterpriseType = enterpriseType;
    }
    /**
     * 获取企业类型
     * @return
     */
    public Short getEnterpriseType(){
        return this.enterpriseType;
    }

    @DBField(disName = "企业规模",mapCode = "enterpriseSize")
    private Short enterpriseSize;
    /**
     * 设置企业规模
     * @param enterpriseSize
     */
    public void setEnterpriseSize(Short enterpriseSize){
        this.enterpriseSize = enterpriseSize;
    }
    /**
     * 获取企业规模
     * @return
     */
    public Short getEnterpriseSize(){
        return this.enterpriseSize;
    }

    @DBField(disName = "信用等级",mapCode = "creditLevel")
    private Short creditLevel;
    /**
     * 设置信用等级
     * @param creditLevel
     */
    public void setCreditLevel(Short creditLevel){
        this.creditLevel = creditLevel;
    }
    /**
     * 获取信用等级
     * @return
     */
    public Short getCreditLevel(){
        return this.creditLevel;
    }

    @DBField(disName = "意向级别",mapCode = "意向级别")
    private Short intentLevel;
    /**
     * 设置意向级别
     * @param intentLevel
     */
    public void setIntentLevel(Short intentLevel){
        this.intentLevel = intentLevel;
    }
    /**
     * 获取意向级别
     * @return
     */
    public Short getIntentLevel(){
        return this.intentLevel;
    }

    @DBField(disName = "备注信息",mapCode = "remark")
    private String remark;
    @DBField(disName = "客户类型",mapCode = "type")
    private Integer type;
    /**
     * 设置备注信息
     * @param remark
     */
    public void setRemark(String remark){
        this.remark = remark;
    }
    /**
     * 获取备注信息
     * @return
     */
    public String getRemark(){
        return this.remark;
    }


    private Short state;
    /**
     * 设置状态
     * @param state
     */
    public void setState(Short state){
        this.state = state;
    }
    /**
     * 获取状态
     * @return
     */
    public Short getState(){
        return this.state;
    }

    /**
     * 排序字段
     * @return
     */
    public String getSortCode() {
        return sortCode;
    }

    public void setSortCode(String sortCode) {
        this.sortCode = sortCode;
    }

    private String sortCode;



    public String getBuildUnit() {
        return buildUnit;
    }

    public void setBuildUnit(String buildUnit) {
        this.buildUnit = buildUnit;
    }

    public String getSupervisorUnit() {
        return supervisorUnit;
    }

    public void setSupervisorUnit(String supervisorUnit) {
        this.supervisorUnit = supervisorUnit;
    }

    public String getConstructionUnit() {
        return constructionUnit;
    }

    public void setConstructionUnit(String constructionUnit) {
        this.constructionUnit = constructionUnit;
    }

    public CustomerInfoEntity(){
        this.enterpriseNature= 0;
        this.creditLevel = this.enterpriseSize =  this.creditLevel=this.enterpriseNature=this.intentLevel=this.enterpriseType=this.state=0;
    }

    public CustomerInfoEntity(String name){
        this.custName = name;
        this.addressPY = HanYuHelper.getShortSpec(name);
        this.address = this.addressPY=this.area=this.areaCode=this.areaPY=this.addressPY=this.address="";

                this.creditLevel = this.enterpriseSize =  this.creditLevel=this.enterpriseNature=this.intentLevel=this.enterpriseType=this.state=0;
    }

    public String getOrganizationSN() {
        return organizationSN;
    }

    public void setOrganizationSN(String organizationSN) {
        this.organizationSN = organizationSN;
    }

    public String getOrganizationCode() {
        return organizationCode;
    }

    public void setOrganizationCode(String organizationCode) {
        this.organizationCode = organizationCode;
    }

    public String getBillingNumber() {
        return billingNumber;
    }

    public void setBillingNumber(String billingNumber) {
        this.billingNumber = billingNumber;
    }

    /**
     * 客户虚拟电子章
     */
    private byte[] electronicSeal;
    private Object linerList;
    private String saleName;
    public Object getLinerList() {
        return linerList;
    }

    public void setLinerList(Object linerList) {
        this.linerList = linerList;
    }

    public byte[] getElectronicSeal() {
        return electronicSeal;
    }

    public void setElectronicSeal(byte[] electronicSeal) {
        this.electronicSeal = electronicSeal;
    }
}
